# _*_ coding:utf-8 _*_
# 开发团队: Mavericks
# 开发人员：Maverick·Ming
# 开发IDE： PyCharm
#   项目名：HelloWorld
#   文件名：6.18 包.py
# 开发时间：2021/3/27 16:08

# 包 Package
# 包也是一个模块
# 当代码量过大，或者一个模块需要被分割为多个模块时，可使用包，把模块放在同一个文件夹内
# 普通的模块是文件，包是文件夹(命名空间)

import hello

# 此时的hello不能算是一个包，因为是空的文件夹
# 保重至少要有一个文件"__init__.py"
print(hello.a)
print(hello.b)
hello.test()

# 好处是可以将功能相关模块归类，便于程序的管理、可读性
# 当程序功能繁杂、模块群庞大时，可以用包分类管理

# __pycache__ 是缓存文件
# py代码执行前，需要被解析器转换为机器码，再执行
#   - 所以使用模块(包)时，也需要将模块代码先转换成机器码交给计算机执行
#   - 为了提高编译效率与运行性能，py编译一次后，将机器码保存到缓存文件中
#   - 如此一来，下次需要加载相同的模块(包)时，只需要直接加载机器码而非重新编译，.pyc文件

# 降低耦合，模块开箱即用，符合开发高效思想
# Python中为了避免功能繁杂代码量过大，Python将其大部分功能保存到标准库中
